/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package redclient;

import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Spring;
import javax.swing.SpringLayout;

public class MainClass {

  public static void main(String[] args) {
    JFrame aWindow = new JFrame();
    aWindow.setBounds(200, 200, 200, 200);
    aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Container content = aWindow.getContentPane();
    content.add(new SpringLayoutPanel());
    aWindow.setVisible(true);
  }
}

class SpringLayoutPanel extends JPanel {

  public SpringLayoutPanel() {

    SpringLayout layout = new SpringLayout();
    setLayout(layout);

    JButton[] buttons = new JButton[6];
    for (int i = 0; i < buttons.length; i++) {
      buttons[i] = new JButton("Press " + (i + 1));
      add(buttons[i]);
    }

    Spring xSpring = Spring.constant(5, 15, 25);
    Spring ySpring = Spring.constant(10, 30, 50);
    Spring wSpring = Spring.constant(30, 80, 130);

    SpringLayout.Constraints buttonConstr = layout.getConstraints(buttons[0]);
    buttonConstr.setX(xSpring);
    buttonConstr.setY(ySpring);

    for (int i = 0; i < buttons.length; i++) {
      buttonConstr = layout.getConstraints(buttons[i]);
      buttonConstr.setHeight(ySpring);
      buttonConstr.setWidth(wSpring);

      if (i > 0) {
        layout.putConstraint(SpringLayout.WEST, buttons[i], xSpring,
            SpringLayout.EAST, buttons[i - 1]);
        layout.putConstraint(SpringLayout.NORTH, buttons[i], ySpring,
            SpringLayout.SOUTH, buttons[i - 1]);
      }
    }

    SpringLayout.Constraints constr = layout.getConstraints(this);
    constr.setConstraint(SpringLayout.EAST, Spring.sum(buttonConstr
        .getConstraint(SpringLayout.EAST), Spring.constant(15)));
    constr.setConstraint(SpringLayout.SOUTH, Spring.sum(buttonConstr
        .getConstraint(SpringLayout.SOUTH), Spring.constant(10)));

  }

}
